#include <iostream>
using namespace std;

class A
{
public:
    A& operator=(const A& a) = delete;//强制删除赋值重载

private:
    //...
};

// class A
// {
// public:
//     A(const A& a)//只显式实现了拷贝构造，因此不会生成默认的移动构造和构造函数
//     {
//         //...
//     }

//     A(A&& a) = default;//强制生成移动构造
//     A() = default;//强制生成默认构造函数
// private:
//     //...
// };

int main()
{
    A x;
    return 0;
}

// template <class T>
// void Print(T&& x) 
// {
//     cout << x << ' ';
// }

// template <class T, class ... Args>
// void Print(T&& x, Args&&... args) 
// {
//     cout << x << ' ';
//     Print(forward<Args>(args)...);
// }

// // void ShowList()//递归出口，无参
// // {
// //         cout << endl;
// // }

// // template<class T, class ...Args>
// // void ShowList(T&& x, Args&&... args)//接收第一个参数和剩余参数包
// // {
// //         cout << x << ' ';//打印第一个参数
// //         ShowList(forward<Args>(args)...);//将剩余参数包一个个展开，并传入，递归调用
// // }


// // template<class ...Args>
// // void Print(Args&&... args)
// // {
// //         ShowList(forward<Args>(args)...);//将参数包一个个展开，并传入
// // }

// int main()
// {
//         Print(1, 2, 'a');//函数调用
//         return 0;
// }

// void Print(int&& a, int&& b, char&& c)
// {
//     ShowList(a, b, c);
// }

// void ShowList(int&& x, int&& b, char&& c)
// {
//     cout << x << ' ';
//     ShowList(b, c);
// }

// void ShowList(int&& x, char&& c)
// {
//     cout << x << ' ';
//     ShowList(c);
// }

// void ShowList(char&& x)
// {
//     cout << x << ' ';
//     ShowList();
// }

// void ShowList()//递归出口，无参
// {
//     cout << endl;
// }